/**
 * .font-style( @size, @color, @weight, @lineHeight, @letterSpacing )
 * 统一设置字体样式，功能增强版
 *
 * @param @size          [Keyword]        - 字体大小关键字 (xl, lg, md, base, sm, xs)。【必填】
 * @param @color         [Keyword]        - (可选) 文字颜色关键字, 默认: 'primary'。
 * @param @weight        [Keyword|Number] - (可选) 字重关键字 (medium, bold) 或数值, 默认: 'normal'。
 * @param @lineHeight    [Keyword|Unit|Number] - (可选) 行高。可传入关键字(base, tight, loose)、带单位的值(e.g., 36rpx)或无单位的比例(e.g., 1.5)。如果传入 false 或不传，则忽略。
 * @param @letterSpacing [Unit]           - (可选) 字间距。可传入带单位的值(e.g., 2rpx)。如果传入 false 或不传，则忽略。
 *
 * 示例:
 * .font-style(lg, primary, bold, tight);                     // 使用行高关键字
 * .font-style(base, regular, normal, base, 0.5rpx);        // 使用行高关键字，并设置字间距
 * .font-style(md, primary, 500, 1.7);                        // 使用自定义行高比例
 * .font-style(sm, secondary);                                // 不设置行高和字间距
 */
 .font-style(@size, @color: primary, @weight: normal, @lineHeight: false, @letterSpacing: false) {
  // --- 设置字体大小 (必填) ---
  & when (@size = xl) { font-size: var(--font-size-xl); }
  & when (@size = lg) { font-size: var(--font-size-lg); }
  & when (@size = md) { font-size: var(--font-size-md); }
  & when (@size = base) { font-size: var(--font-size-base); }
  & when (@size = sm) { font-size: var(--font-size-sm); }
  & when (@size = xs) { font-size: var(--font-size-xs); }

  // --- 设置字体颜色 (有默认值) ---
  & when (@color = primary) { color: var(--text-color-primary); }
  & when (@color = regular) { color: var(--text-color-regular); }
  & when (@color = secondary) { color: var(--text-color-secondary); }
  & when (@color = placeholder) { color: var(--text-color-placeholder); }
  & when (@color = disabled) { color: var(--text-color-disabled); }
  & when (@color = white) { color: var(--text-color-white); }
  & when (@color = success) { color: var(--color-success); }
  & when (@color = warning) { color: var(--color-warning); }
  & when (@color = error) { color: var(--color-error); }
  & when (@color = info) { color: var(--color-info); }

  // --- 设置字重 (有默认值) ---
  font-weight: @weight;
  & when (@weight = medium) { font-weight: var(--font-weight-medium); }
  & when (@weight = bold) { font-weight: var(--font-weight-bold); }

  // --- 设置行高 (可选, 支持关键字和直接值) ---
  & when not (@lineHeight = false) {
    // 默认直接输出传入的值 (适用于 1.7, 30rpx 等)
    line-height: @lineHeight; 
    
    // 如果传入的是关键字，则用 var() 覆盖上面的默认输出
    & when (@lineHeight = base) { line-height: var(--line-height-base); }
    & when (@lineHeight = tight) { line-height: var(--line-height-tight); }
    & when (@lineHeight = loose) { line-height: var(--line-height-loose); }
  }

  // --- 设置字间距 (可选) ---
  & when not (@letterSpacing = false) {
		& when (@letterSpacing = xs) { letter-spacing: var(--space-xs); }
		& when (@letterSpacing = lg) { letter-spacing: var(--space-sm); }
  }
}
